#ifndef TYPE_GEN_HPP
#define TYPE_GEN_HPP

#include <iostream>
#include <vector>
#include "Type.hpp"
#include "TypeInt.hpp"
#include "TypeReal.hpp"

using namespace std;

class TypeGenerator
{
	private:
		TypeGenerator();
		TypeGenerator(TypeGenerator const&);  // Don't Implement
		void operator=(TypeGenerator const&); // Don't implement

	protected:
		vector<Type *> typeRefDelete;

	public:
		static TypeGenerator& getInstance()
		{
			static TypeGenerator instance;
			return instance;
		}

		const TypeInt * getIntType();
		const TypeReal * getRealType();
		//const TypeBool * getBoolType();
		//const TypeString * getStringType();
		~TypeGenerator();

};

#endif
